package com.cyt.work.enrollment.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import com.cyt.work.enrollment.model.po.EnrollmentRelease;
import com.cyt.work.enrollment.model.vo.EnrollmentReleaseVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 自主招生-招生发布Service层接口类
 *
 * @author caideyong
 * @date 2019-11-22 16:06:41
 */
public interface EnrollmentReleaseService extends BaseService<EnrollmentRelease> {

    /**
     * 查询对象集合
     *
     * @param enrollmentReleaseVo 对象
     * @return List 对象集合
     * @author caideyong
     * @date 2019-11-22 16:06:41
     */
    List<EnrollmentRelease> listExample(EnrollmentReleaseVo enrollmentReleaseVo);

    /**
     * 分页查询
     *
     * @param enrollmentReleaseVo 接受参数对象
     * @param pageNum             分页数
     * @param pageSize            每页显示条数
     * @return ReturnResult
     * @author caideyong
     * @date 2019-11-22 16:06:41
     */
    ReturnResult page(EnrollmentReleaseVo enrollmentReleaseVo, int pageNum, int pageSize);

    /**
     * 添加或更新
     *
     * @param enrollmentReleaseVo 参数接受对象
     * @param sysUser             当前用户
     * @return ReturnResult
     * @author caideyong
     * @date 2019-11-22 16:06:41
     */
    ReturnResult addOrUpdate(HttpServletRequest request,EnrollmentReleaseVo enrollmentReleaseVo, SysUser sysUser);
    /**
     * 结束发布
     *
     * @param enrollmentReleaseVo 传入参数对象
     * @param sysUser             当前用户
     * @return ReturnResult
     * @author caideyong
     * @date 2019/12/3
     */
    ReturnResult endRelease(EnrollmentReleaseVo enrollmentReleaseVo, SysUser sysUser);

    /**
     * 根据条件逻辑删除
     *
     * @param enrollmentReleaseVo 参数接受对象
     * @param sysUser             当前用户
     * @return ReturnResult
     * @author caideyong
     * @date 2019-11-22 16:06:41
     */
    ReturnResult remove(EnrollmentReleaseVo enrollmentReleaseVo, SysUser sysUser);

    /**
     * 根据条件物理删除
     *
     * @param enrollmentReleaseVo 参数接受对象
     * @param sysUser             当前用户
     * @return ReturnResult
     * @author caideyong
     * @date 2019-11-22 16:06:41
     */
    ReturnResult delete(EnrollmentReleaseVo enrollmentReleaseVo, SysUser sysUser);
}